import axios from 'axios'
import Vue from 'vue'
// import { Toast } from 'vant'

// axios.defaults.baseURL = process.env.VUE_APP_URL

// axios.create(重置) 重置了axios的默认配置 返回值也是一个axios(用一个变量接收),只是这个axios是重置了默认值的axios
const _fetch = axios.create({ baseURL: process.env.VUE_APP_URL })

// 请求拦截
_fetch.interceptors.request.use(
  function (config) {
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)
// // 响应拦截器
_fetch.interceptors.response.use(
  // 第一个参数是 promise对象  拦截器返回的promise对象——respons
  function (res) {
    console.log('响应', res)
    if (res.data.code === 200) {
      return res
    } else {
      // 返回code不是200提示,注意这里是js不是vue
      Vue.prototype.$toast.fail(res.data.message)
      // Toast.fail(res.data.message)
      // 假如不写这句,这里return回去就是undefined
      // 中止.then执行.catch,核心原因是return了reject
      // new Error是错误信息
      return Promise.reject(new Error(res.data.message))
    }
  },
  function (error) {
    // 这里不写newError是因为内部已经做了newError处理了
    return Promise.reject(error)
  }
)

// Vue.prototype.$axios = axios
// 暴露出去
export default _fetch
